﻿
#include "CustomFilterModule.h"

CustomFilterModule::CustomFilterModule(QObject *parent)
    : QSortFilterProxyModel{parent}
{

}

/**
 * @brief CustomFilterModule::filterAcceptsRow 过滤行
 * @param sourceRow
 * @param sourceParent
 * @return
 */
bool CustomFilterModule::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
{
    //获取搜索内容
    QString searchText = filterRegExp().pattern();
    //如果搜索内容为空，则显示所有行
    if(searchText.isEmpty()){
        return true;
    }
    //遍历表格中的所有列，检查是否与搜索内容匹配
    for(int column=0; column<sourceModel()->columnCount(); ++column){
        QModelIndex index = sourceModel()->index(sourceRow,column,sourceParent);
        if(index.isValid()&&index.data().toString().contains(searchText,Qt::CaseInsensitive)){
            return true;
        }
    }
    return false;
}

